package com.museum.guide.dto;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Future;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.time.LocalDate;

/**
 * 预约DTO
 */
@Data
public class AppointmentDTO {

    /**
     * 时间段ID
     */
    @NotNull(message = "时间段不能为空")
    private Long timeSlotId;

    /**
     * 预约日期
     */
    @NotNull(message = "预约日期不能为空")
    @Future(message = "预约日期必须是未来日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate appointmentDate;

    /**
     * 预约人数
     */
    @NotNull(message = "预约人数不能为空")
    @Min(value = 1, message = "预约人数必须大于0")
    private Integer visitorCount;

    /**
     * 预约人姓名
     */
    @NotBlank(message = "预约人姓名不能为空")
    private String visitorName;

    /**
     * 预约人手机号
     */
    @NotBlank(message = "预约人手机号不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String visitorPhone;

    /**
     * 预约人身份证号
     */
    @Pattern(regexp = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)", message = "身份证号格式不正确")
    private String visitorIdCard;

    /**
     * 备注
     */
    private String remark;
}